﻿/******************************************************************************
* File description: StateOperate.qml
* Function: 复位状态存储
* Current Version: 1.0.0
* Author: JNN
* Date: 2025-07-01
*  -----
*  Copyright by 博坤生物 .
 *****************************************************************************/
import QtQuick 2.0

// 单步执行状态控制
// 弹窗有三种触发信号 (A)点击<执行>触发 (B)设备返01时触发 (C)设备返02时触发
Item {

    // ------------ 模块类型编号(暂定) --------------
    // (传字符串格式)
    // 01纯化-注射器
    // 02纯化-阀门
    // 03转盘 04盖盖 (应该没有)
    // 05纯化-转液
    // 20放靶-挡板
    // 21放样-传靶
    // 22加速-吸靶 10s
    // 23加速-冷却 Ns
    // 24加速-干燥 Ns
    // 25加速-移靶
    // 26加速-锁定
    // 27加速-进料
    // 28加速-传靶
    // 29转靶-盖盖
    // 2A转靶-取放靶
    // 2B转靶-夹爪
    // 2C转靶-转液

    property string operatingPart: ""     // 正在复位的模块

    // (A) 点击<执行>按钮时调用 [type]模块类型编号 [param]附加参数(例如水泵气泵需要传时间)，用于后续扩展，没有则随便传个0或者[]就行
    function openPopup(type, param){
        operatingPart = type

        // 等待响应时间计算
        if(type === "23"){        // 冷却
//            preset.box_operating.setTimer1Interval(Number(param[0]) * 1000 * 60 * 1.1 + 5000)     // 水冷的时间从计时改成开关了
//            box_operating.setTimer1Interval(Number(param[0]) * 1000 * 60 + 5000)
            preset.box_operating.setTimer1Interval(config.return02Timeout_short)
            box_operating.setTimer1Interval(config.return02Timeout_short)
        }else if(type === "24"){    // 干燥
            preset.box_operating.setTimer1Interval(Number(param[0]) * 1000 * 60 * 1.1 + 5000)     // preset是系统设置里的弹窗，box_operating是主页里的弹窗，这里重复设置了两遍
            box_operating.setTimer1Interval(Number(param[0]) * 1000 * 60 + 5000)
        }else if(type === "01"){    // 注射器
            preset.box_operating.setTimer1Interval(config.return02Timeout_long)
            box_operating.setTimer1Interval(config.return02Timeout_long)
        }else{
            preset.box_operating.setTimer1Interval(config.return02Timeout_short)
            box_operating.setTimer1Interval(config.return02Timeout_short)
        }
        if(gIsShowPrefSettings){
            preset.box_operating.show()     // 系统设置弹窗显示
            preset.box_operating.startWait01()
        }else{
            box_operating.show()            // 主页弹窗显示
            box_operating.startWait01()
        }
    }
    Connections{
        target: CSignal

        onStepRunningStatus: {
//            if(gIsShowPrefSettings) { return }  // 临时-打开系统设置时不接收执行信号

            // (B) 设备返01时触发
            if(status === 1){
                if(gIsShowPrefSettings){
                    preset.box_operating.show()     // 系统设置弹窗显示
                    preset.box_operating.startWait02()
                }else{
                    box_operating.show()            // 主页弹窗显示
                    box_operating.startWait02()
                }
                gExpIsExecOperate = 1

            }
            // (C) 设备返02时触发
            else{
                gExpIsExecOperate = 0

                if(gIsShowPrefSettings){
                    preset.box_operating.finishWait()     // 系统设置弹窗
                }else{
                    box_operating.finishWait()            // 主页弹窗
                }

                // 用于主页动画复位
                if(gStateOp.operatingPart === "21"){
                    CAnimationShifting.closeBlowTarget()
                }if(gStateOp.operatingPart === "23"){
                    CAnimationPractice.closePump1()
                    CAnimationPractice.closePumpHe()
                }if(gStateOp.operatingPart === "24"){
                    CAnimationPractice.closePump2()
                }if(gStateOp.operatingPart === "28"){
                    CAnimationPractice.closeBlowTarget()
                }
                operatingPart = -1
            }
        }
    }





}
